#include "config.h"
#include "ui_config.h"
#include <QTcpSocket>
#include <QFileDialog>
#include <QDebug>
#include <QFile>
#include <QMessageBox>

Config::Config(QTcpSocket *s, QString name, QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Config)
{
    ui->setupUi(this);
    _socket = s;
    _username = name;
}

Config::~Config()
{
    delete ui;
}

void Config::on_pushButton_clicked() //选择文件的按钮
{
    // 创建文件选择对话框
    QString filePath = QFileDialog::getOpenFileName(nullptr, "选择文件", "", "所有文件 (*.*)");

    if (!filePath.isNull()) {
       qDebug() << "选择的文件路径：" << filePath;
       ui->lineEdit->setText(filePath);
       // 在这里处理选择的文件路径
    } else {
       qDebug() << "取消选择文件";
    }
}

void Config::on_pushButton_2_clicked() //确定按钮
{
    // 将路径的图片变成二进制文件
    QString imgPath = ui->lineEdit->text();
    QDataStream stream(_socket);
    QString action = "UPDATE_IMG";
    stream << action;
    QFile file(imgPath);
    if (file.open(QIODevice::ReadOnly)) {
        QByteArray byteArray = file.readAll();
        file.close();
        stream << byteArray;
        qDebug() << "row 48 File converted to binary data. Size: " << byteArray.size();
        emit updateImg(byteArray); //触发信号
        // 头像更换成功后显示提示框
        QMessageBox::information(this, "成功", "头像更换成功！");

        // 关闭窗口
        close();
    } else {
        qDebug() << "Failed to open file.";
    }

}
